跳到主要内容

文件 文件夹

\<?php

class FileUtil

{

/\*\*

\* 建立文件夹

\*

\* @param string $aimUrl

\* @return viod

\*/

public function createDir($aimUrl)

{

$aimUrl = str\_replace('', '/', $aimUrl);

$aimDir = '';

$arr = explode('/', $aimUrl);

$result = true;

foreach ($arr as $str) {

$aimDir .= $str . '/';

if (!file\_exists($aimDir)) {

$result = mkdir($aimDir);

}

}

return $result;

}

/\*\*

\* 建立文件

\*

\* @param string $aimUrl

\* @param boolean $overWrite 该参数控制是否覆盖原文件

\* @return boolean

\*/

public function createFile($aimUrl, $overWrite = false)

{

if (file\_exists($aimUrl) && $overWrite == false) {

return false;

} elseif (file\_exists($aimUrl) && $overWrite == true) {

FileUtil::unlinkFile($aimUrl);

}

$aimDir = dirname($aimUrl);

FileUtil::createDir($aimDir);

touch($aimUrl);

return true;

}

/\*\*

\* 移动文件夹

\*

\* @param string $oldDir

\* @param string $aimDir

\* @param boolean $overWrite 该参数控制是否覆盖原文件

\* @return boolean

\*/

public function moveDir($oldDir, $aimDir, $overWrite = false)

{

$aimDir = str\_replace('', '/', $aimDir);

$aimDir = substr($aimDir, -1) == '/' ? $aimDir : $aimDir . '/';

$oldDir = str\_replace('', '/', $oldDir);

$oldDir = substr($oldDir, -1) == '/' ? $oldDir : $oldDir . '/';

if (!is\_dir($oldDir)) {

return false;

}

if (!file\_exists($aimDir)) {

FileUtil::createDir($aimDir);

}

@$dirHandle = opendir($oldDir);

if (!$dirHandle) {

return false;

}

while (false !== ($file = readdir($dirHandle))) {

if ($file == '.' || $file == '..') {

continue;

}

if (!is\_dir($oldDir . $file)) {

FileUtil::moveFile($oldDir . $file, $aimDir . $file, $overWrite);

} else {

FileUtil::moveDir($oldDir . $file, $aimDir . $file, $overWrite);

}

}

closedir($dirHandle);

return rmdir($oldDir);

}

/\*\*

\* 移动文件

\*

\* @param string $fileUrl

\* @param string $aimUrl

\* @param boolean $overWrite 该参数控制是否覆盖原文件

\* @return boolean

\*/

public function moveFile($fileUrl, $aimUrl, $overWrite = false)

{

if (!file\_exists($fileUrl)) {

return false;

}

if (file\_exists($aimUrl) && $overWrite = false) {

return false;

} elseif (file\_exists($aimUrl) && $overWrite = true) {

FileUtil::unlinkFile($aimUrl);

}

$aimDir = dirname($aimUrl);

FileUtil::createDir($aimDir);

rename($fileUrl, $aimUrl);

return true;

}

/\*\*

\* 删除文件夹

\*

\* @param string $aimDir

\* @return boolean

\*/

public function unlinkDir($aimDir)

{

$aimDir = str\_replace('', '/', $aimDir);

$aimDir = substr($aimDir, -1) == '/' ? $aimDir : $aimDir . '/';

if (!is\_dir($aimDir)) {

return false;

}

$dirHandle = opendir($aimDir);

while (false !== ($file = readdir($dirHandle))) {

if ($file == '.' || $file == '..') {

continue;

}

if (!is\_dir($aimDir . $file)) {

FileUtil::unlinkFile($aimDir . $file);

} else {

FileUtil::unlinkDir($aimDir . $file);

}

}

closedir($dirHandle);

return rmdir($aimDir);

}

/\*\*

\* 删除文件

\*

\* @param string $aimUrl

\* @return boolean

\*/

public function unlinkFile($aimUrl)

{

if (file\_exists($aimUrl)) {

unlink($aimUrl);

return true;

} else {

return false;

}

}

/\*\*

\* 复制文件夹

\*

\* @param string $oldDir

\* @param string $aimDir

\* @param boolean $overWrite 该参数控制是否覆盖原文件

\* @return boolean

\*/

public function copyDir($oldDir, $aimDir, $overWrite = false)

{

$aimDir = str\_replace('', '/', $aimDir);

$aimDir = substr($aimDir, -1) == '/' ? $aimDir : $aimDir . '/';

$oldDir = str\_replace('', '/', $oldDir);

$oldDir = substr($oldDir, -1) == '/' ? $oldDir : $oldDir . '/';

if (!is\_dir($oldDir)) {

return false;

}

if (!file\_exists($aimDir)) {

FileUtil::createDir($aimDir);

}

$dirHandle = opendir($oldDir);

while (false !== ($file = readdir($dirHandle))) {

if ($file == '.' || $file == '..') {

continue;

}

if (!is\_dir($oldDir . $file)) {

FileUtil::copyFile($oldDir . $file, $aimDir . $file, $overWrite);

} else {

FileUtil::copyDir($oldDir . $file, $aimDir . $file, $overWrite);

}

}

return closedir($dirHandle);

}

/\*\*

\* 复制文件

\*

\* @param string $fileUrl

\* @param string $aimUrl

\* @param boolean $overWrite 该参数控制是否覆盖原文件

\* @return boolean

\*/

public function copyFile($fileUrl, $aimUrl, $overWrite = false)

{

if (!file\_exists($fileUrl)) {

return false;

}

if (file\_exists($aimUrl) && $overWrite == false) {

return false;

} elseif (file\_exists($aimUrl) && $overWrite == true) {

FileUtil::unlinkFile($aimUrl);

}

$aimDir = dirname($aimUrl);

FileUtil::createDir($aimDir);

copy($fileUrl, $aimUrl);

return true;

}

}